package com.jrauto.CarAppBackend.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

/**
 * 二手车主表
 *
 * @TableName cars
 */
@TableName(value = "cars")
@Data
public class Car {
    @TableId(value = "car_id", type = IdType.AUTO)
    private Integer carId; // 车辆唯一ID
    private String brand; // 品牌中文名
    private String series; // 车系中文名
    private String title; // 车辆标题
    private String carNumber; // 车辆编号
    private String vin; // 车架号（VIN）
    private Integer sellerType; // 车主类型：1=自营，2=车商，3=个人
    private Integer salesRegion; // 销售地区：1=国内，2=出口
    private Integer modelId; // 车型ID，关联 model 表
    private float price; // 销售价格（元）
    private Integer manufactureYear;
    private Integer manufactureMonth;
    private Integer mileage; // 里程（公里）
    private String exterior; // 外观颜色
    private String interior; // 内饰颜色
    private Integer seats; // 座位数
    private Integer transfer_count; // 过户次数
    private Date registration; // 上牌日期
    private float displacement; // 排量（升）
    private Integer kilometer; // 续航里程（公里）
    private Integer power; // 动力类型：1=汽油,2=柴油,3=纯电,4=油电混合,5=增程
    private Integer drive; // 驱动方式：1=前驱,2=后驱,3=四驱
    private Integer transmission; // 变速器：1=自动挡,2=手动挡
    private Integer level; // 车辆级别：1=SUV,2=轿车,3=小型车
    private String report; // 检测报告URL
    private Integer transferCount; // 过户次数
    private Integer publisherId; // 发布人ID
    private String pubName; // 发布人姓名
    private String pubPhone; // 发布人手机号
    private String province; // 车源省份
    private String conditionDesc; // 车况描述
    private String config; // 选车配置
    private String city; // 车源城市
    private String district; // 车源区县
//    private String address; // 详细地址
    private Integer status; // 汽车状态：0=未上架,1=已上架,2=已下架
    private Date createdAt; // 创建时间
    private Date updatedAt; // 更新时间

    // 非数据库字段，用于关联查询时存放媒体信息
//    @TableField(exist = false)
//    private List<CarMedia> mediaList;


    public Integer getCarId() {
        return carId;
    }

    public void setCarId(Integer carId) {
        this.carId = carId;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getSeries() {
        return series;
    }

    public void setSeries(String series) {
        this.series = series;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber;
    }

    public String getVin() {
        return vin;
    }

    public void setVin(String vin) {
        this.vin = vin;
    }

    public Integer getSellerType() {
        return sellerType;
    }

    public void setSellerType(Integer sellerType) {
        this.sellerType = sellerType;
    }

    public Integer getSalesRegion() {
        return salesRegion;
    }

    public void setSalesRegion(Integer salesRegion) {
        this.salesRegion = salesRegion;
    }

    public Integer getModelId() {
        return modelId;
    }

    public void setModelId(Integer modelId) {
        this.modelId = modelId;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    public Integer getManufactureYear() {
        return manufactureYear;
    }

    public void setManufactureYear(Integer manufactureYear) {
        this.manufactureYear = manufactureYear;
    }

    public Integer getManufactureMonth() {
        return manufactureMonth;
    }

    public void setManufactureMonth(Integer manufactureMonth) {
        this.manufactureMonth = manufactureMonth;
    }

    public Integer getMileage() {
        return mileage;
    }

    public void setMileage(Integer mileage) {
        this.mileage = mileage;
    }

    public String getExterior() {
        return exterior;
    }

    public void setExterior(String exterior) {
        this.exterior = exterior;
    }

    public String getInterior() {
        return interior;
    }

    public void setInterior(String interior) {
        this.interior = interior;
    }

    public Integer getSeats() {
        return seats;
    }

    public void setSeats(Integer seats) {
        this.seats = seats;
    }

    public Integer getTransfer_count() {
        return transfer_count;
    }

    public void setTransfer_count(Integer transfer_count) {
        this.transfer_count = transfer_count;
    }

    public Date getRegistration() {
        return registration;
    }

    public void setRegistration(Date registration) {
        this.registration = registration;
    }

    public float getDisplacement() {
        return displacement;
    }

    public void setDisplacement(float displacement) {
        this.displacement = displacement;
    }

    public Integer getKilometer() {
        return kilometer;
    }

    public void setKilometer(Integer kilometer) {
        this.kilometer = kilometer;
    }

    public Integer getPower() {
        return power;
    }

    public void setPower(Integer power) {
        this.power = power;
    }

    public Integer getDrive() {
        return drive;
    }

    public void setDrive(Integer drive) {
        this.drive = drive;
    }

    public Integer getTransmission() {
        return transmission;
    }

    public void setTransmission(Integer transmission) {
        this.transmission = transmission;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getReport() {
        return report;
    }

    public void setReport(String report) {
        this.report = report;
    }

    public Integer getTransferCount() {
        return transferCount;
    }

    public void setTransferCount(Integer transferCount) {
        this.transferCount = transferCount;
    }

    public Integer getPublisherId() {
        return publisherId;
    }

    public void setPublisherId(Integer publisherId) {
        this.publisherId = publisherId;
    }

    public String getPubName() {
        return pubName;
    }

    public void setPubName(String pubName) {
        this.pubName = pubName;
    }

    public String getPubPhone() {
        return pubPhone;
    }

    public void setPubPhone(String pubPhone) {
        this.pubPhone = pubPhone;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getConditionDesc() {
        return conditionDesc;
    }

    public void setConditionDesc(String conditionDesc) {
        this.conditionDesc = conditionDesc;
    }

    public String getConfig() {
        return config;
    }

    public void setConfig(String config) {
        this.config = config;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }
//
//    public String getAddress() {
//        return address;
//    }
//
//    public void setAddress(String address) {
//        this.address = address;
//    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }
}